package com.wego.common.bean;

import com.github.pagehelper.Page;
import com.wego.common.utils.JsonUtil;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import java.util.List;

/**
 * @className: PageBean
 * @description: 用户单击页码时，服务器端返回的数据
 * @param <T>
 * @author: Li Chuanwei
 * @date: 2023/07/10 22:45
 * @Company: Copyright [日期] by [作者或个人]
 **/

@Getter
@Setter
@NoArgsConstructor
public class PageBean<T> {
    /**
     * 每页显示的条数
     */
    private Integer pageSize;
    /**
     * 当前的页码
     */
    private Integer pageNum;
    /**
     * 一共有多少条记录
     */
    private Long total;
    /**
     * 一共有多少页
     */
    private Integer pages;
    /**
     * 每一页所显示的数据
     */
    private List<T> result;

    /**
     * 分页请求路径
     */
    private String url;

    /**
     * 将MyBatis的Page对象转换成我们自定义的PageBean对象
     *
     * @param page
     */
    public PageBean(Page<T> page) {
        this.pageSize = page.getPageSize();
        this.pageNum = page.getPageNum();
        this.total = page.getTotal();
        //将Long转换成Integer类型
        this.pages = page.getPages();
        this.result = page.getResult();
    }

    @Override
    public String toString() {
        return JsonUtil.obj2String(this);
    }
}
